/*************************************************************/
//player is our standard player class....yeah. It has the movement and
//can print
//Tyler Wozniak & Andrew Hall
/*************************************************************/

#ifndef GAME_PLAYER
#define GAME_PLAYER
#include "imports.h"
#include "Unit.h"
#include "Enemy.h"

class GameManager;

class Player: public Unit
{
private:
	GameManager* gameRef; //A pointer to the current game object.  I don't garbage collect this because the pointer will be referencing the singleton object
public:
	Player(GameManager& game,string type);
	Player(const Player& other);
	Player operator=(const Player& other);

	void defaultInit();
	void attack(Unit* other);
	void move(char inp);
	void moveW();
	void moveE();
	void moveN();
	void moveS();
	void moveNW();
	void moveNE();
	void moveSW();
	void moveSE();
	void print(ostream& o) const;
	void regen();

	~Player();
};

#endif